其他
Cocos Creator 3.4.1 稳定性再提升!最新演示 Demo 即将发布
Cocos Creator 3.4.1 今日正式发布。在 v3.4.1 中,我们重点修复了 v3.4.0 发布后用户反馈的问题,提升了稳定性。
同时为了帮助 v2.x 的开发者升级到 v3.x,我们调整了 2D 渲染组件的合批策略,大幅度提升了 2D 渲染的整体性能表现,相比 v3.3 提升幅度可达到 20% - 70% 左右。性能测试结果我们也对比了 v2.x 版本,参考下面的对比图,绝大部分测试的表现都已经和 v2.x 逼近或持平,小部分超过。
图例讲解:所有测试都是在中低端机完成,每张图标的四个区间依次为 Android Web、iOS Web、Android WeChat、iOS WeChat。另外原生平台上的整体性能提升在 v3.6 的原生化版本中也会得到大幅度的优化,目前原生化的独立分支已经合并到 v3.6.0 的开发分支中[1]。
v3.4.1 经过了个把月的论坛公测,期间有很多热心开发者(如 @ankoGo 和 @ankye)和我们保持了高频度的线上交流,这些宝贵的反馈建议帮助我们提高了版本的成熟度,非常感谢大家!
最新图形渲染 Demo
实现了 FSR 超分辨率技术,在高帧率下也能得到高质量、高分辨率的游戏体验。FSR (AMD FidelityFX Super Resolution) 是 AMD 全新的、开源的、高质量的渲染解决方案,它使用了一系列尖端的算法,特别强调创建高质量的边缘,与直接以原始分辨率渲染相比,性能有很大的提高。
FSR 超分辨率技术
实现了高质量平面反射,可动态调节反射分辨率来获得更高帧率。一般游戏中多使用 ssr 或者 sspr 来做平面反射,但是这种基于屏幕的后处理方案只能对已渲染的画面内的物体产生反射效果。而基于反射摄像机技术则没有这样的限制,但是他的缺点是性能消耗非常大,比较直观的代价就是反射的物体都要再渲染一次。在降低屏幕反射的分辨率后,配合 taa 降低锯齿以及 FSR 提升渲染质量,屏幕反射就可以在可接受的性能消耗下得到很好的效果。
实现了 SSAO,带来更好的阴影细节。SSAO (Screen Space Ambient Occlusion) 可以以较低的代价计算出画面中任何一点被周围几何体所遮蔽的百分比,在被遮蔽更多的地方画面表现更暗一些,更接近于真实世界的感觉。例如在墙角处,物体接触的地方或者表面褶皱处,这些地方会比平面接受到的光照更少,也就会表现的更暗一些。
重要更新
重构 2D 合批策略,RenderData 持有静态 VertexBuffer 内存,优化 2D 渲染全平台性能 优化 2D 渲染组件状态管理,UV 和 Color 改为立即填充,避免污染 VB 状态 Material.copy 现支持接受 override 材质修改参数 在微信上允许开启 WebGL 2.0,为未来支持 WebGL 2.0 的微信版本做准备 小幅度优化粒子系统运行性能 修复编辑器启动脚本过多的项目比较慢的问题 修复编译模拟器会出现报错的问题 限制 web 平台 dpr 最大为 2,修复 Android Web 端因此导致的性能下降 修复事件派发优先级,让 UI 监听器永远优先于 input 事件监听器 修复阴影部分情况下性能下降的问题 修复 iOS/macOS 第二次调用 restart 异常退出问题 修复 Android 平台进入后台游戏逻辑停止的问题 修复 SkeletalAnimation sample 的独立使用问题 修复动画 crossFade 时的错乱问题 修复 TiledLayer 的颜色设置问题 修复多 Camera 渲染到同一个 RenderTexture 上被覆盖的问题 修复原生平台一些内存碎片问题 修复 Label spacingX 属性没有序列化的问题 修复 debug 模式 restart 后 profiler 消失的问题 修复 burst 在暂停后重新播放表现不对的问题 修复切换场景 UseHDR 按钮,效果相反的问题 修复 iOS & Mac Safari 不支持 USE_REFLECTION_DENOISE 的问题 修复 Cocos Play 与微信平台由 getSystemInfoSync 引入的性能下降的问题 修复 Sphere Light 在 Android Web 上效果不正确的问题 修复 windows 平台 debug 模式下,三个 cocos 游戏同时运行时的崩溃问题
已知遗留问题
Slider 在 ScrollView 中无法被平滑拖动的问题:计划在 v3.4.2 修复
SkeletalAnimation 在不调用 play 的情况下直接 setTime 无效的问题:v3.4.2 修复方案[2]
2D 粒子在部分情况下会产生闪烁:v3.4.2 修复方案[3]
Dragonbones 在设置位置后需要调用 `ArmatureDisplay.markForUpdateRenderData` 才可以正确更新:v3.4.2 修复方案[4]
Android 12 版本使用 Vulkan 后端会导致崩溃:v3.4.2 修复方案[5]
点击文末【阅读原文】前往官网下载最新版本,欢迎大家使用与体验,再次感谢各位开发者的支持!
参考链接
往期精彩